1. Field of the Invention
The present invention relates to the field of functional and operational testing of a computer program and more particularly to test script generation for functional and operational testing of a computer program.
2. Description of the Related Art
Software functional testing relates to the functional testing of a graphical user interface (GUI) coupled to an underlying software application. Conventional functional testing tools allow the end user to create, modify and run functional, distributed functional, regression and smoke tests for applications built using any of a wide variety of integrated development environments. In this regard, the conventional functional testing tool can generate a test script for a GUI in which elements of the GUI can be exercised both sequentially and conditionally. Through a thorough testing of the GUI of an application, the functional testing tool can automatically identify defects early, often and repeatably.
Operational testing, in comparison to functional testing, refers to the exercise of the logical performance of an application under test. In operational testing, the invocation of an object can be used to compare an expected outcome with an actual outcome from the invocation. Both operational and functional testing can be automated through the use of testing scripts. Testing scripts can be produced manually and provided as input to a testing engine, or the testing scripts can be generated in an automated fashion. In the latter instance, a conventional testing tool can monitor and record the interaction between end user and GUI during a recording phase of testing. During the recording phase, a testing script can be produced based upon the identity of GUI elements addressed by the end user, the corresponding logical operations invoked by the addressing of the GUI elements, the results of the invocation, and the sequence in which the GUI elements are addressed.
Monitoring the interaction between an end user and GUI elements of a GUI in order to automate the generation of a testing script requires that the GUI elements within the GUI remain statically present within the GUI. To the extent the GUI changes, so too must the generated script. Yet, in an era of highly customizable GUIs permitted to be customized by the end user, static GUIs are not to be counted upon and therefore, the automated generation of a testing script can be complicated.
Further, in the context of testing a complex application with extensive customization options, manually crafting automated testing scripts capable of adequately exercising the customized areas of the Web application can be complicated, resource-intensive, and prone to human error. Additionally, testing scripts created manually are inflexible, useful only for testing specific customizations which must be planned in advance. Such scripts will fail if run against an instance of the application which has not had the anticipated customizations applied, and those manually created scripts overlook any new customizations which have been introduced.
In this way, the creation and use of manual testing scripts result in an excessive maintenance burden for the testing automation staff. Consequently, a more flexible, thorough, and automatic solution for creating testing scripts which require less maintenance overhead would be desirable in order to efficiently and effectively produce automated testing scripts for such an application.